home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (C) 1994, Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
- * the contents of this file may not be disclosed to third parties, copied or
- * duplicated in any form, in whole or in part, without the prior written
- * permission of Silicon Graphics, Inc.
- *
- * RESTRICTED RIGHTS LEGEND:
- * Use, duplication or disclosure by the Government is subject to restrictions
- * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
- * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
- * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
- * rights reserved under the Copyright Laws of the United States.
- */
- #ifndef SW_COMM_H
- #define SW_COMM_H
-
- #include "comm.h"
-
- class SwServer {
- public:
- enum { NotConnected, Connected, NoSuchServer,
- ConnectionBroken, OtherError };
-
- SwServer(const char* serverName);
- SwServer(NetId serverId);
- ~SwServer();
-
- int open(const ShipObject*);// open connection to server
- void close(); // close connection to server
- int state() const; // TRUE if open
-
- NetId serverId() const; // server id
- NetId hostId() const; // my host id
-
- void send(const SwAliveMessage&);
- void send(const SwHitMessage&);
- void send(const SwKilledMessage&);
- void send(const SwGrabFlagMessage&);
- void send(const SwDropFlagMessage&);
- void send(const SwCaptureFlagMessage&);
- void send(const char* message);
- void send(const char* message, NetId aboutWhom);
- void send(const char* message, Team aboutWhichTeam);
- ServerMessageType receive(int block = 0); // return message type
- ServerMessageType type() const; // get message type
- const SwAnyMessage* get() const; // get actual message
-
- private:
- void init();
- void getWorld();
- void send();
-
- private:
- int status; // connection status
- int fd; // connection file descriptor
- NetId serverNetId;
- NetId hostNetId;
- ServerPacket messageIn;
- ServerPacket messageOut;
- fd_set read_set;
- };
-
- void handleServerMessages();
- int openBroadcast(int port); // TRUE if success
- void closeBroadcast();
- int sendBroadcast(const ShipInfo&);
- int recvBroadcast(ShipInfo&);
- void handleBroadcastMessages();
-
- #endif
-